package com.bysj.sausys.service;

import com.bysj.sausys.beans.PageQuery;
import com.bysj.sausys.beans.PageResult;
import com.bysj.sausys.beans.SubmitTaskBean;
import com.bysj.sausys.common.JsonData;
import com.bysj.sausys.model.SysAssCancel;
import com.bysj.sausys.vo.TaskVo;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * 社团注销申请Service的接口
 *
 * @author WangZK
 */
public interface ISysAssCancelService {

    /**
     * 保存社团注销申请，不能对同个社团提交相同的申请
     *
     * @param sysAssCancel
     * @param username
     */
    void save(SysAssCancel sysAssCancel, String username);

    /**
     * 更新社团注销申请
     *
     * @param sysAssCancel
     * @param username
     */
    void update(SysAssCancel sysAssCancel, String username);

    /**
     * 获取注销申请单列表
     *
     * @param pageQuery
     * @return
     */
    PageResult<SysAssCancel> getPage(PageQuery pageQuery);

    /**
     * 根据id获取注销申请单
     *
     * @param id
     * @return
     */
    SysAssCancel findById(int id);

    /**
     * 删除社团注销申请
     *
     * @param id
     */
    void delete(Integer id);

    /**
     * 判断用户是否对应，更新注销申请状态，启动流程实例，让启动的流程实例关联业务
     *
     * @param id
     * @param username
     */
    void saveStartProcess(Integer id, String username);

    /**
     * 获取审批信息
     *
     * @param taskId
     * @return
     */
    Map<String, Object> getAuditInfo(String taskId);

    /**
     * 完成任务
     *
     * @param submitTaskBean
     * @param username
     * @return
     */
    void saveSubmitTask(SubmitTaskBean submitTaskBean, String username);

    /**
     * 获取历史批注信息
     *
     * @param id
     * @return
     */
    Map<String, Object> getHisComment(Integer id);

    /**
     * 修改社团注销申请单的状态
     *
     * @param map
     */
    void updateStatus(Map map);

    /**
     * 社团注销申请审批通过
     *
     * @param map
     * @param sysAssCancel
     */
    void auditPass(Map map, SysAssCancel sysAssCancel);
}
